package com.diandian.backend.order.mapper;

import com.diandian.backend.order.domain.OrderOnlineDouyinLife;
import com.diandian.backend.order.dto.OrderOnlineDouyinLifeAddParamDTO;
import com.diandian.backend.order.dto.OrderOnlineDouyinLifeBatchUpdateRoomInfoDTO;
import com.diandian.backend.order.dto.OrderOnlineDouyinLifeDetailParamDTO;
import com.diandian.backend.order.dto.OrderOnlineDouyinLifePageParamDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

@Mapper
public interface OrderOnlineDouyinLifeMapper {

    // 查询记录数
    Integer getCount(@Param("data") OrderOnlineDouyinLifePageParamDTO requestDTO);

    // 查询分页中的数据集合
    List<OrderOnlineDouyinLife> getPage(@Param("data") OrderOnlineDouyinLifePageParamDTO requestDTO, @Param("pageSize") Integer pageSize, @Param("offset") Integer offset);

    // 查询详情
    OrderOnlineDouyinLife getDetail(@Param("data") OrderOnlineDouyinLifeDetailParamDTO requestDTO);

    /**
     * 删除客户端下某个时间段内的订单数据
     * @param belong
     * @param startTime
     * @param endTime
     */
    void deleteByTime(@Param("belong") String belong, @Param("startTime") Date startTime, @Param("endTime") Date endTime);

    void deleteByOrderNumAndBelong(@Param("belong") String belong, @Param("onlineOrderNum") String onlineOrderNum);

    void batchAdd(@Param("dataList") List<OrderOnlineDouyinLifeAddParamDTO> dataList);

    void add(@Param("data") OrderOnlineDouyinLifeAddParamDTO data);

    OrderOnlineDouyinLife queryDetail(@Param("belong") String belong, @Param("onlineOrderNum") String onlineOrderNum);

    void updateStatus(@Param("belong") String belong, @Param("onlineOrderNum") String onlineOrderNum, @Param("status") String status, @Param("updateTime") Date updateTime);

    List<String> getExistsOnlineOrderNum(@Param("belong") String belong, @Param("startTime") Date startTime, @Param("endTime") Date endTime);

    void batchUpdateRoomInfo(@Param("belong") String belong, @Param("dataList") List<OrderOnlineDouyinLifeBatchUpdateRoomInfoDTO> dataList);
}